Dostupnost promenych
Otázka od: mad@worldmail.cz
5. 4. 2004 11:36
Hezky den,
dokazete mi nekdo vysvetlit, proc a jak funguje nasledujici pripad ?
Pr. Mam dve unity:
main.pas:
Procedure delejNeco;
begin
ShowMessage('Main:'+IntToStr(MainMenu1.Items.Items[3].Count)); //!!!!!
ActualToolMenu;
end;
dalsi.pas:
procedure ActualTooMenu;
begin
If MainMenu1.Items.Items[3].Items[0].Count > 0 Then
For X:=0 To MainMenu1.Items.Items[3].Items[0].Count-1 do
MainMenu1.Items.Items[3].Items[0].Items[X].Checked:=Options.ToolMenu[X];
end;
Z main.pas zavolam "delejNeco". Pokud v tedo procedure je ShowMessage...,
tak se ActualToolMenu korektne provede. Pokud ovsem ShowMessage vypustim,
tak procedura ActualToolMenu spadne s chybovou hlaskou (index out of...)
Prosim Vas o vysvetleni kde je chyba. Dal jsem sem jen podstatne casti kodu,
ostatni casti na toto nemaji vliv.
Dekuji.
Michal A.
.
Odpovedá: mad@worldmail.cz
5. 4. 2004 11:56
A jeste zajimavejsi vec:
Procedure delejNeco;
begin
ShowMessage('Main:'+IntToStr(MainMenu1.Items.Items[3].Count)); //Zobrazi se
"0"
ShowMessage('Main:'+IntToStr(MainMenu1.Items.Items[3].Count)); //Zobrazi se
"1"
ActualToolMenu;
end;
Nechapu
Michal A.
.
Odpovedá: Jiri Cincura
5. 4. 2004 17:22
mad@worldmail.cz wrote:
>
> Procedure delejNeco;
> begin
> ShowMessage('Main:'+IntToStr(MainMenu1.Items.Items[3].Count));
> //!!!!! ActualToolMenu;
Count se indexuje od nuly. Cili pro posledni/pocet musi byt Count-1.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
web: http://www.cincura.net; http://cincura.net/photo